package com.tom.architect.day13;

import androidx.appcompat.app.AppCompatActivity;

import android.animation.Keyframe;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.os.Bundle;
import android.util.Log;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;

import com.tom.architect.R;

//import timber.log.Timber;

public class MainActivity13 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main13);

        // setInterpolator(TimeInterpolator value) // 设置的是接口，传进去的是TimeInterpolator的子类。
        // LinearInterpolator-> BaseInterpolator-> Interpolator-> TimeInterpolator

        ImageView imageView = null;
//        ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "scaleX", 0f, 1f, 2f);
//        animator.setInterpolator(new DecelerateInterpolator());
//        animator.setDuration(4000).start();

        // 自己去实现
        // 开启一个线程，调用setScaleX()这个方法，传的值是后面的0f, 1f, 2f。
        // 怎么调用imageView的setScaleX方法：通过反射调用。
        // setValues(PropertyValuesHolder.ofFloat(mPropertyName, values));
        //  public static PropertyValuesHolder ofFloat(String propertyName, float... values) {
            // FloatPropertyValuesHolder
                //  setFloatValues----KeyframeSet.ofFloat(values);
                    // KeyframeSet ofFloat(float... values) {
                        // FloatKeyframe[]
        // public static Keyframe ofFloat(float fraction, float value) {


        useTimber();
    }

    private void useTimber() {
        // 策略设计模式：切换
//        if (BuildConfig.DEBUG) {
//            Timber.plant(new Timber.DebugTree());
//        } else {
//            Timber.plant(new CrashReportingTree());
//        }
//
////        Timber.plant(new  ReportingTree());
//        // 但是打印是 low 得不行，所以我们一般需要自己扩展，配合我们的 Logger 一起使用
//        Timber.tag("LifeCycles");
//        Timber.e("Activity Created");
    }

//    private static class ReportingTree extends Timber.Tree {
//        @Override protected void log(int priority, String tag, String message, Throwable t) {
//            Log.e(tag, message);
//            // 保存到 本地 文件
//        }
//    }
//
//    /** A tree which logs important information for crash reporting. */
//    private static class CrashReportingTree extends Timber.Tree {
//        @Override protected void log(int priority, String tag, String message, Throwable t) {
//            if (priority == Log.VERBOSE || priority == Log.DEBUG) {
//                return;
//            }
//            // 保存到 本地 文件
//        }
//    }

}
